package com.zone.service.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zone.common.core.annotation.Excel;
import com.zone.common.core.web.domain.BaseEntity;

/**
 * 线路管理对象 zone_route
 * 
 * @author liuyang
 * @date 2025-11-17
 */
public class Route extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 路线ID */
    private Long id;

    /** 线路编号 */
    @Excel(name = "线路编号")
    private String routeNo;

    /** 线路名称 */
    @Excel(name = "线路名称")
    private String name;

    /** 业务类型 */
    @Excel(name = "业务类型")
    private Long opTpye;

    /** 区域ID，可关联区域表 */
    @Excel(name = "区域ID，可关联区域表")
    private Long areaId;

    /** 线路类别 */
    @Excel(name = "线路类别")
    private Long lineTpye;

    /** 执行日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "执行日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date runDate;

    /** 计划开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planBeginTime;

    /** 计划结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planEndTime;

    /** 班次A/B/C */
    @Excel(name = "班次A/B/C")
    private String shift;

    /** 钥匙员/业务员A ID，关联zone_employees */
    @Excel(name = "钥匙员/业务员A ID，关联zone_employees")
    private Long lockerId;

    /** 密码员/业务员B ID，，关联zone_employees */
    @Excel(name = "密码员/业务员B ID，，关联zone_employees")
    private Long pwdId;

    /** 押运员1的ID，关联zone_employees */
    @Excel(name = "押运员1的ID，关联zone_employees")
    private Long securityAId;

    /** 押运员2的ID，关联zone_employees */
    @Excel(name = "押运员2的ID，关联zone_employees")
    private Long securityBId;

    /** 司机id，关联zone_employees */
    @Excel(name = "司机id，关联zone_employees")
    private Long driverId;

    /** 跟车司机id，关联zone_employees */
    @Excel(name = "跟车司机id，关联zone_employees")
    private Long followDriverId;

    /** 跟车学习人员/业务助理id，关联zone_employees */
    @Excel(name = "跟车学习人员/业务助理id，关联zone_employees")
    private Long followLearnerId;

    /** 车辆id，关联车辆表，获取车辆自编码，车牌号 */
    @Excel(name = "车辆id，关联车辆表，获取车辆自编码，车牌号")
    private Long vehicleId;

    /** Ibutton id,关联Ibutton表 */
    @Excel(name = "Ibutton id,关联Ibutton表")
    private Long atmIbuttonId;

    /** PDA id,关联PDA表 */
    @Excel(name = "PDA id,关联PDA表")
    private Long pdaId;

    /** 线路备注 */
    @Excel(name = "线路备注")
    private String routeRemark;

    /** ATM任务列表，关联zone_atm_task表，用逗号分隔 */
    @Excel(name = "ATM任务列表，关联zone_atm_task表，用逗号分隔")
    private String atmTaskIdList;

    /** 早送晚收任务列表，关联zone_zsws_task表，用逗号分隔 */
    @Excel(name = "早送晚收任务列表，关联zone_zsws_task表，用逗号分隔")
    private String zswsTaskIdList;

    /** atm押运物品，关联zone_supplies表，用逗号分隔 */
    @Excel(name = "atm押运物品，关联zone_supplies表，用逗号分隔")
    private String suppliersList;

    /** 回线钞箱个数 */
    @Excel(name = "回线钞箱个数")
    private Long returnBoxCounts;

    /** 业务员绩效档位(基础档、一~六档) */
    @Excel(name = "业务员绩效档位(基础档、一~六档)")
    private String zswsOperTier;

    /** 司机绩效档位(基础档、一~六档) */
    @Excel(name = "司机绩效档位(基础档、一~六档)")
    private String zswsDriverTier;

    /** 司机是否兼职业务 */
    @Excel(name = "司机是否兼职业务")
    private Long zswsPartTimeDriver;

    /** 押运员领枪时长（分钟） */
    @Excel(name = "押运员领枪时长", readConverterExp = "分=钟")
    private Long getGunMinute;

    /** 司机领钥匙时长（分钟） */
    @Excel(name = "司机领钥匙时长", readConverterExp = "分=钟")
    private Long getKeyMinute;

    /** 领任务单时长（分钟） */
    @Excel(name = "领任务单时长", readConverterExp = "分=钟")
    private Long getListMinute;

    /** 是否途径佛山 */
    @Excel(name = "是否途径佛山")
    private String isThroughFoshan;

    /** 是否单次收费线路 */
    @Excel(name = "是否单次收费线路")
    private String isOneWayRoute;

    /** 是否去人行 */
    @Excel(name = "是否去人行")
    private String isToPboc;

    /** 是否去机场 */
    @Excel(name = "是否去机场")
    private String isToAirport;

    /** 是否去农商广州库房 */
    @Excel(name = "是否去农商广州库房")
    private String isToGzrbc;

    /** 是否需要枪柜钥匙 */
    @Excel(name = "是否需要枪柜钥匙")
    private String isNeedKeyOfGunBox;

    /** 是否需要单页打印 */
    @Excel(name = "是否需要单页打印")
    private String isPrintOneSide;

    /** 线路状态（新建、已审核、已确认、已出发、已完成） */
    @Excel(name = "线路状态", readConverterExp = "新=建、已审核、已确认、已出发、已完成")
    private String status;

    /** 人员到岗时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "人员到岗时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date beginTime;

    /** 从金库出发时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "从金库出发时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date outTime;

    /** 返回金库时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "返回金库时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date backTime;

    /** 审核者 */
    @Excel(name = "审核者")
    private String checkBy;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date checkTime;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setRouteNo(String routeNo) 
    {
        this.routeNo = routeNo;
    }

    public String getRouteNo() 
    {
        return routeNo;
    }

    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }

    public void setOpTpye(Long opTpye) 
    {
        this.opTpye = opTpye;
    }

    public Long getOpTpye() 
    {
        return opTpye;
    }

    public void setAreaId(Long areaId) 
    {
        this.areaId = areaId;
    }

    public Long getAreaId() 
    {
        return areaId;
    }

    public void setLineTpye(Long lineTpye) 
    {
        this.lineTpye = lineTpye;
    }

    public Long getLineTpye() 
    {
        return lineTpye;
    }

    public void setRunDate(Date runDate) 
    {
        this.runDate = runDate;
    }

    public Date getRunDate() 
    {
        return runDate;
    }

    public void setPlanBeginTime(Date planBeginTime) 
    {
        this.planBeginTime = planBeginTime;
    }

    public Date getPlanBeginTime() 
    {
        return planBeginTime;
    }

    public void setPlanEndTime(Date planEndTime) 
    {
        this.planEndTime = planEndTime;
    }

    public Date getPlanEndTime() 
    {
        return planEndTime;
    }

    public void setShift(String shift) 
    {
        this.shift = shift;
    }

    public String getShift() 
    {
        return shift;
    }

    public void setLockerId(Long lockerId) 
    {
        this.lockerId = lockerId;
    }

    public Long getLockerId() 
    {
        return lockerId;
    }

    public void setPwdId(Long pwdId) 
    {
        this.pwdId = pwdId;
    }

    public Long getPwdId() 
    {
        return pwdId;
    }

    public void setSecurityAId(Long securityAId) 
    {
        this.securityAId = securityAId;
    }

    public Long getSecurityAId() 
    {
        return securityAId;
    }

    public void setSecurityBId(Long securityBId) 
    {
        this.securityBId = securityBId;
    }

    public Long getSecurityBId() 
    {
        return securityBId;
    }

    public void setDriverId(Long driverId) 
    {
        this.driverId = driverId;
    }

    public Long getDriverId() 
    {
        return driverId;
    }

    public void setFollowDriverId(Long followDriverId) 
    {
        this.followDriverId = followDriverId;
    }

    public Long getFollowDriverId() 
    {
        return followDriverId;
    }

    public void setFollowLearnerId(Long followLearnerId) 
    {
        this.followLearnerId = followLearnerId;
    }

    public Long getFollowLearnerId() 
    {
        return followLearnerId;
    }

    public void setVehicleId(Long vehicleId) 
    {
        this.vehicleId = vehicleId;
    }

    public Long getVehicleId() 
    {
        return vehicleId;
    }

    public void setAtmIbuttonId(Long atmIbuttonId) 
    {
        this.atmIbuttonId = atmIbuttonId;
    }

    public Long getAtmIbuttonId() 
    {
        return atmIbuttonId;
    }

    public void setPdaId(Long pdaId) 
    {
        this.pdaId = pdaId;
    }

    public Long getPdaId() 
    {
        return pdaId;
    }

    public void setRouteRemark(String routeRemark) 
    {
        this.routeRemark = routeRemark;
    }

    public String getRouteRemark() 
    {
        return routeRemark;
    }

    public void setAtmTaskIdList(String atmTaskIdList) 
    {
        this.atmTaskIdList = atmTaskIdList;
    }

    public String getAtmTaskIdList() 
    {
        return atmTaskIdList;
    }

    public void setZswsTaskIdList(String zswsTaskIdList) 
    {
        this.zswsTaskIdList = zswsTaskIdList;
    }

    public String getZswsTaskIdList() 
    {
        return zswsTaskIdList;
    }

    public void setSuppliersList(String suppliersList) 
    {
        this.suppliersList = suppliersList;
    }

    public String getSuppliersList() 
    {
        return suppliersList;
    }

    public void setReturnBoxCounts(Long returnBoxCounts) 
    {
        this.returnBoxCounts = returnBoxCounts;
    }

    public Long getReturnBoxCounts() 
    {
        return returnBoxCounts;
    }

    public void setZswsOperTier(String zswsOperTier) 
    {
        this.zswsOperTier = zswsOperTier;
    }

    public String getZswsOperTier() 
    {
        return zswsOperTier;
    }

    public void setZswsDriverTier(String zswsDriverTier) 
    {
        this.zswsDriverTier = zswsDriverTier;
    }

    public String getZswsDriverTier() 
    {
        return zswsDriverTier;
    }

    public void setZswsPartTimeDriver(Long zswsPartTimeDriver) 
    {
        this.zswsPartTimeDriver = zswsPartTimeDriver;
    }

    public Long getZswsPartTimeDriver() 
    {
        return zswsPartTimeDriver;
    }

    public void setGetGunMinute(Long getGunMinute) 
    {
        this.getGunMinute = getGunMinute;
    }

    public Long getGetGunMinute() 
    {
        return getGunMinute;
    }

    public void setGetKeyMinute(Long getKeyMinute) 
    {
        this.getKeyMinute = getKeyMinute;
    }

    public Long getGetKeyMinute() 
    {
        return getKeyMinute;
    }

    public void setGetListMinute(Long getListMinute) 
    {
        this.getListMinute = getListMinute;
    }

    public Long getGetListMinute() 
    {
        return getListMinute;
    }

    public void setIsThroughFoshan(String isThroughFoshan) 
    {
        this.isThroughFoshan = isThroughFoshan;
    }

    public String getIsThroughFoshan() 
    {
        return isThroughFoshan;
    }

    public void setIsOneWayRoute(String isOneWayRoute) 
    {
        this.isOneWayRoute = isOneWayRoute;
    }

    public String getIsOneWayRoute() 
    {
        return isOneWayRoute;
    }

    public void setIsToPboc(String isToPboc) 
    {
        this.isToPboc = isToPboc;
    }

    public String getIsToPboc() 
    {
        return isToPboc;
    }

    public void setIsToAirport(String isToAirport) 
    {
        this.isToAirport = isToAirport;
    }

    public String getIsToAirport() 
    {
        return isToAirport;
    }

    public void setIsToGzrbc(String isToGzrbc) 
    {
        this.isToGzrbc = isToGzrbc;
    }

    public String getIsToGzrbc() 
    {
        return isToGzrbc;
    }

    public void setIsNeedKeyOfGunBox(String isNeedKeyOfGunBox) 
    {
        this.isNeedKeyOfGunBox = isNeedKeyOfGunBox;
    }

    public String getIsNeedKeyOfGunBox() 
    {
        return isNeedKeyOfGunBox;
    }

    public void setIsPrintOneSide(String isPrintOneSide) 
    {
        this.isPrintOneSide = isPrintOneSide;
    }

    public String getIsPrintOneSide() 
    {
        return isPrintOneSide;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setBeginTime(Date beginTime) 
    {
        this.beginTime = beginTime;
    }

    public Date getBeginTime() 
    {
        return beginTime;
    }

    public void setOutTime(Date outTime) 
    {
        this.outTime = outTime;
    }

    public Date getOutTime() 
    {
        return outTime;
    }

    public void setBackTime(Date backTime) 
    {
        this.backTime = backTime;
    }

    public Date getBackTime() 
    {
        return backTime;
    }

    public void setCheckBy(String checkBy) 
    {
        this.checkBy = checkBy;
    }

    public String getCheckBy() 
    {
        return checkBy;
    }

    public void setCheckTime(Date checkTime) 
    {
        this.checkTime = checkTime;
    }

    public Date getCheckTime() 
    {
        return checkTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("routeNo", getRouteNo())
            .append("name", getName())
            .append("opTpye", getOpTpye())
            .append("areaId", getAreaId())
            .append("lineTpye", getLineTpye())
            .append("runDate", getRunDate())
            .append("planBeginTime", getPlanBeginTime())
            .append("planEndTime", getPlanEndTime())
            .append("shift", getShift())
            .append("lockerId", getLockerId())
            .append("pwdId", getPwdId())
            .append("securityAId", getSecurityAId())
            .append("securityBId", getSecurityBId())
            .append("driverId", getDriverId())
            .append("followDriverId", getFollowDriverId())
            .append("followLearnerId", getFollowLearnerId())
            .append("vehicleId", getVehicleId())
            .append("atmIbuttonId", getAtmIbuttonId())
            .append("pdaId", getPdaId())
            .append("routeRemark", getRouteRemark())
            .append("atmTaskIdList", getAtmTaskIdList())
            .append("zswsTaskIdList", getZswsTaskIdList())
            .append("suppliersList", getSuppliersList())
            .append("returnBoxCounts", getReturnBoxCounts())
            .append("zswsOperTier", getZswsOperTier())
            .append("zswsDriverTier", getZswsDriverTier())
            .append("zswsPartTimeDriver", getZswsPartTimeDriver())
            .append("getGunMinute", getGetGunMinute())
            .append("getKeyMinute", getGetKeyMinute())
            .append("getListMinute", getGetListMinute())
            .append("isThroughFoshan", getIsThroughFoshan())
            .append("isOneWayRoute", getIsOneWayRoute())
            .append("isToPboc", getIsToPboc())
            .append("isToAirport", getIsToAirport())
            .append("isToGzrbc", getIsToGzrbc())
            .append("isNeedKeyOfGunBox", getIsNeedKeyOfGunBox())
            .append("isPrintOneSide", getIsPrintOneSide())
            .append("status", getStatus())
            .append("beginTime", getBeginTime())
            .append("outTime", getOutTime())
            .append("backTime", getBackTime())
            .append("remark", getRemark())
            .append("createTime", getCreateTime())
            .append("createBy", getCreateBy())
            .append("updateTime", getUpdateTime())
            .append("updateBy", getUpdateBy())
            .append("checkBy", getCheckBy())
            .append("checkTime", getCheckTime())
            .toString();
    }
}
